package com.fansl.allround.ucenter.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.fansl.allround.common.core.bean.UserInfo;
import com.fansl.allround.common.core.constant.enums.OauthTypeEnum;
import com.fansl.allround.ucenter.api.dto.UserRegisterDTO;
import com.fansl.allround.ucenter.api.entity.UcenterUser;
import com.fansl.allround.ucenter.api.vo.UcenterUserOauthVO;

/**
 * @author fansl
 * @Description: TODO
 * @date 2019/9/25 17:52
 */
public interface UcenterUserService extends IService<UcenterUser> {
    /**
     * 获取用户信息
     * @param ucenterUserOauthVO 用户认证信息
     * @return ucenterUserInfo
     */
    UserInfo getUserInfo(UcenterUserOauthVO ucenterUserOauthVO);

    /**
     * 根据认证类型获取用户信息
     * @param oauthName
     * @param ucenterOauthType
     * @return
     */
    UcenterUserOauthVO getByOauthType(String oauthName, OauthTypeEnum ucenterOauthType);

    /**
     * 发送emailCode
     * @param email
     * @return
     */
    boolean sendRegisterCode(String email);

    /**
     * 注册用户
     * @param userRegisterDTO
     * @return
     */
    boolean register(UserRegisterDTO userRegisterDTO);

    /**
     * 注册用户（通过第三方登录的用户）
     * @param ucenterUser
     * @param oauthValue
     * @param oauthType
     * @return
     */
    boolean registerUseOauth(UcenterUser ucenterUser,String oauthValue, OauthTypeEnum oauthType);

    /**
     * 创建用户
     * @param ucenterUser
     * @param oauthValue
     * @param ucenterOauthType
     * @return
     */
    UserInfo create(UcenterUser ucenterUser, String oauthValue, OauthTypeEnum ucenterOauthType);
}
